package appVeterinaria.negocio;

import java.util.Collection;

import appVeterinaria.dao.FacturaDAO;
import appVeterinaria.excepcion.DAOExcepcion;
import appVeterinaria.modelo.Cita;
import appVeterinaria.modelo.CitaServicio;
import appVeterinaria.modelo.Factura;
import appVeterinaria.modelo.Servicio;

public class GestionFactura {

	public Collection<Factura> buscarPorIdFactura(int idFactura)
			throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.buscarPorIdFactura(idFactura);
	}

	public Collection<Factura> buscarPorFechaRegistro(String fechaReg)
			throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.buscarPorFecha(fechaReg);
	}

	public Factura insertar(String fe_registro_factura, double montoTotal)

	throws DAOExcepcion {

		FacturaDAO dao = new FacturaDAO();

		Factura vo = new Factura();

		vo.setFechaRegistro(fe_registro_factura);

		vo.setMontoTotal(montoTotal);

		return dao.insertar(vo);
	}

	public CitaServicio insertarCitaServicio(int servicios_idServicio,
			int cita_idCita, int cantidad, double costo, int factura_idFactura)

	throws DAOExcepcion {

		FacturaDAO dao = new FacturaDAO();

		Factura objFactura = new Factura();
		objFactura.setIdFactura(factura_idFactura);

		Servicio objServicio = new Servicio();
		objServicio.setIdServicio(servicios_idServicio);

		Cita objCita = new Cita();
		objCita.setIdCita(cita_idCita);

		CitaServicio vo = new CitaServicio();

		vo.setObjServicio(objServicio);
		vo.setObjCita(objCita);
		vo.setObjFactura(objFactura);
		vo.setCantidad(cantidad);
		vo.setCosto(costo);

		return dao.insertarCitasServicios(vo);
	}

	public Factura obtener(int idFactura) throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.obtener(idFactura);
	}

	public void eliminar(int idFactura) throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		dao.eliminar(idFactura);
	}

	public Factura actualizar(int idFactura, Cita objCita,
			String fe_registro_factura, int cantidad, double montoTotal)
			throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();

		Factura vo = new Factura();
		vo.setIdFactura(idFactura);
		vo.setObjCita(objCita);
		vo.setFechaRegistro(fe_registro_factura);
		vo.setCantidad(cantidad);
		vo.setMontoTotal(montoTotal);

		return dao.actualizar(vo);
	}

	public Collection<Factura> listar() throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.listar();
	}
	
	public Collection<Factura> listarFactura() throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.listarFactura();
	}

	public Collection<CitaServicio> detalleFactura(int idFactura)
			throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.detalleFactura(idFactura);
	}

	public Collection<Servicio> listarServicio() throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.listarServicio();
	}

	public double obtenerCostoServicio(int idServicio) throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.obtenerCostoServicio(idServicio);
	}

	public int obtenerUltimoId() throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.obtenerUltimoId();
	}

}
